package com.ft.service.impl;

import com.ft.domain.Commodity;
import com.ft.dao.CommodityDao;
import com.ft.service.CommodityService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ft.utils.CommodityByID;
import org.apache.ibatis.annotations.Insert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author ft
 * @since 2022-06-01
 */
@Service
public class CommodityServiceImpl extends ServiceImpl<CommodityDao, Commodity> implements CommodityService {
    @Autowired
    CommodityDao commodityDao;
    /**
     * 查询商品名称是否存在
     * @param name :查询的商品名
     * @return 返回的商品名
     */
    @Override
    public String selectByName(String name) {
        String zname = commodityDao.selectByName(name);
        return zname;
    }

    /**
     * 添加商品
     * @param commodity 添加的商品对象
     * @return 受影响的行数 1成功，0失败
     */
    @Override
    public int addCommodity(Commodity commodity){
        while(true) {
            int temp = CommodityByID.createID();
            Integer integer = commodityDao.selectByid(temp);
            if (integer == null) {
                commodity.setId(temp);
                int i = commodityDao.addCommodity(commodity);
                return i;
            }
        }
    }
    /**
     *根据传入的商品id对用户做逻辑删除
     * @param id 要删除商品的id
     * @return 返回受影响的结果
     */
    @Override
    public int deleteCommodity(int id) {
        int i = commodityDao.deleteCommodity(id);
        return i;
    }
    /**
     *修改商品
     * @param commodity 传入修改的商品对象
     * @return 返回受影响的行数
     */
    @Override
    public int updateCommodity(Commodity commodity) {
        int i = commodityDao.updateCommodity(commodity);
        return i;
    }
    /**
     * 查询所有商品（state不为2的商品信息）
     * @return 返回所有商品集合
     */
    @Override
    public List<Commodity> selectAll() {
        List<Commodity> commodities = commodityDao.selectAll();
        return commodities;
    }

    /**
     * 查询以上架商品
     * @return 返回所有已下架商品集合
     */
    @Override
    public List<Commodity> selectGrounding() {
        List<Commodity> commodities = commodityDao.selectGrounding();
        return commodities;
    }

    /**
     * 查询以下架商品
     * @return 返回所有已下架商品集合
     */
    @Override
    public List<Commodity> selectOffTheShelf() {
        List<Commodity> commodities = commodityDao.selectOffTheShelf();
        return commodities;
    }

    /**
     * 查询已经逻辑删除的商品
     * @return 返回查询的list集合
     */
    @Override
    public List<Commodity> selectByState() {
        List<Commodity> commodities = commodityDao.selectByState();
        return commodities;
    }
}
